#ifndef CUBE_TPVCAMERA_H_
#define CUBE_TPVCAMERA_H_

class TpvCamera : public Camera
{
DECLARE_RTTI( TpvCamera, Camera )

public :
	TpvCamera( const std::string& name );
	~TpvCamera();

	void					OnLButtonPushed();
	void					OnLButtonReleased();
	void					OnMouseMoved( int dx, int dy );
	void					OnRButtonPushed();
	void					OnRButtonRelease();
	void					OnWheelScrolled( int delta );

	D3DXVECTOR3				GetPosition();
	D3DXMATRIX				GetProjectionMatirx();
	D3DXMATRIX				GetViewMatrix();
	D3DXVECTOR3				GetViewVector();

	void					SetObjectiveTarget( Actor* target );
	void					SetPosition( const D3DXVECTOR3& pos );
	void					SetSubjectiveTarget( Actor* target );
	void					SetViewVector( const D3DXVECTOR3& view );

private :
	float					_distance;
	bool					_leftButtonPushed;
};

#endif